Graphical user interfaces are typically based on bit-mapped graphic display technology that employs iconic (pictorial) representations, multi-font typographic-style text and other art work on a display screen of a computer system. These interfaces include a window environment that configures the screen to resemble a graphical display for a user to enter or view information. Generally, an application program executing on the computer system presents the information to the user through a window by drawing images, graphics or text within the window region. The user, in turn, communicates with the application by "pointing" at objects in the window with a cursor that is controlled by a hand-operated pointing device, such as a mouse.
Transient "pop-up" or "pull-down" menus list command selections that are available to the user at all times, regardless of what else may be displayed on the screen. For example, there is no need to close a document and return to a main menu screen in order to select and issue commands from a menu. The menus can be activated and commands selected merely by pointing to them with the mouse. That is, the commands may be issued by actuating the mouse to move the cursor onto or near the command selection and pressing and releasing, i.e., "clicking", a button switch on the mouse.
In general, these menus may be manifested as direct access menus which show all possible choices on a window, such as with a panel of buttons, or as taxonomic menus which classify a domain hierarchy and allow the user to navigate through it. In many situations it is not necessary for the menu to remain permanently visible on the display screen and it can thus be "popped-up" on the screen when required. Typically, a button switch on the mouse is depressed to display the menu which is then painted on the screen near the cursor position. When the switch is released, the menu disappears. Again, menu selection is achieved by pointing the cursor at the desired item with the mouse, which visually shades the selected item.
The pop up menu is a convenient way to keep frequently used commands and information accessible without occupying space on the window. Alternately, several different menus can be provided by buttons on the window which, when selected by the mouse, display their menus; these are called pull-down menus. Typically, these menus remain drawn only while the mouse button is depressed.
Commands in the pull-down and pop-up menus typically act one or more objects. If an application requires more information to carry out a command, a dialog box may be employed. A dialog box is a special type of window that elicits information from the user, such as requiring the user to check items or fill in blanks.
Graphical user interfaces are exemplified by the Finder application software system used in the Macintosh.RTM. series of computers and manufactured by Apple Computer, Inc. of Cupertino, Calif. An aspect of that software system is described in U.S. Pat. No. 4,931,783, which is hereby incorporated by reference as though fully set forth herein. That patent describes how to manipulate and control the functions available from the Finder system though the use of menus. The details of how to implement such a system, as well as other Finder functions, are described in a volume of the publication "Inside Macintosh", published by Addison-Wesley, titled "Macintosh Toolbox Essentials", which volume is also hereby incorporated by reference.
Another example of a popular software system that provides a graphical user interface is the Windows.RTM. operating system, which is commercially available from Microsoft Corporation. The present invention is applicable to all such systems and is primarily concerned with accessing information relating to the states of objects developed in accordance with object-oriented programming techniques.
Object-oriented programming is a paradigm for designing and implementing software programs. Generally, object-oriented programming defines and packages objects, where an object consists of a data structure together with the operations available for that structure. Once such objects have been defined, it is possible to build a program as a simple sequence of processes to be performed on specified instances of these objects. An integral part of object definition is the ability to create new, more elaborate objects as enhancements of those previously defined.
When developing software programs, there may be attributes associated with one or more of these objects that a user, such as a programmer, would like to examine. These attributes may relate to numerical values or information concerning the status of an object, such as whether its source code has been modified. Typically, the attributes are represented as bits of state associated with the object and, in many conventional graphical user interface systems, these state attributes are available from menus accessible from a window. However, the programmer retrieves the menu and accesses each attribute with a control device, such as a mouse, to examine its contents which, typically, are manifested textually. Such procedures may be time consuming and inefficient, particularly if there are many different state attributes associated with the object.
Accordingly, it is among the objects of the present invention to provide an improved graphical user interface having the capability of positionally representing state attributes associated with an object.
Another object of the present invention is to provide an interactive graphical user interface having the capability of positionally displaying state attributes for more than one object at a time.